﻿/*!
 * Copyright (c), 上海沃恩信息科技有限公司.
 * All rights reserved.
 * Licensed under BSD (https://www.pittypat.work/bsd.html).
 */

namespace Pittypat.Data
{
    /// <summary>
    /// 解密配置文件中数据服务的路径。
    /// </summary>
    /// <remarks>
    /// 数据服务的路径可能是数据库连接字符串等，这些路径中可能包含了密码等敏感信息。如果路径已经被加密，那么在创建数据服务时就需要对加密路径进行解密。
    /// 通过 <see cref="Configuration.PittypatConfig.DataServiceUrlDecryptor"/> 来配置解密程序，也就是配置文件中 pittypat 配置节的 dataServiceUrlDecryptor 参数。
    /// </remarks>
    public interface IDataServiceUrlDecryptor
    {
        /// <summary>
        /// 解密指定的数据服务的路径。
        /// </summary>
        /// <param name="url">要解密的数据服务的路径，比如一个已经加密的数据库连接字符串。</param>
        /// <returns>解密后的数据服务的路径，比如一个数据库连接字符串的明文。</returns>
        string Decrypt(string url);
    }
}
